package com.wanwu.channel.facade.dto.resp;

import lombok.Data;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.lang.reflect.Field;
import java.math.BigDecimal;

@Data
public class ChPayQueryRespDto extends ChBaseRespDto {

    private static final long serialVersionUID = -9156479108355822340L;

    /**
     * 业务线支付单号
     * */
    private String bizOrderNo;

    /**
     * 业务线code
     * */
    private String bizCode;

    /**
     * 渠道单号
     */
    private String channelNo;

    /**
     * 三方支付单号
     * */
    private String thirdOrderNo;

    /**
     * 通联支付单号
     * */
    private String tlOrderNo;

    /**
     * 支付金额
     * */
    private BigDecimal payAmount;

    /**
     * 手续费金额
     */
    private BigDecimal feeAmount;

    /**
     * 支付平台用户标示
     * */
    private String acct;

    /**
     * 支付状态
     * */
    private String status;

    /**
     * 完成时间
     * */
    private String finishTime;

    /**
     * 买方账号
     */
    private String buyerId;

    /**
     * 买方邮箱
     */
    private String buyerEmail;

    /**
     * 三方返回错误码
     */
    private String thirdErrCode;

    /**
     * 三方返回错误信息
     */
    private String thirdErrMsg;

    /**
     * 支付商户号
     */
    private String merchantNo;

    /**
     * 支付appid
     */
    private String merchantAppId;

    /**
     * 敏感数据过滤
     * @return
     */
    @Override
    public String toString() {
        return (new ReflectionToStringBuilder(this, ToStringStyle.JSON_STYLE) {
            @Override
            protected boolean accept(Field f) {
                return super.accept(f) && !f.getName().equals("buyerId") && !f.getName().equals("buyerEmail") ;
            }
        }).toString();
    }

}
